package cn.com.sise.dao;

import cn.com.sise.pojo.Dictionary;
import cn.com.sise.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface DictionaryDao {

    /**
     * 分页获取单词数
     *
     * @param start 开始页面
     * @param count 页数和
     * @return List
     */
    List<Dictionary> getDictionaryList(@Param("start") int start, @Param("count") int count);

    /**
     * 插入单词
     *
     * @param dictionary 传入单词信息
     * @return int
     */
    int insertDictionary(Dictionary dictionary);

    /**
     * 通过id删除单词信息
     *
     * @param dictionary 传入单词信息
     * @return int
     */
    int deleteDictionary(Dictionary dictionary);

    /**
     * 通过id修改单词信息
     *
     * @param dictionary 传入单词信息
     * @return int
     */
    int updateDictionary(Dictionary dictionary);

    /**
     * 通过id查询单词所有信息
     *
     * @param dictionary 传入单词信息
     * @return Dictionary
     */
    Dictionary selectDictionary(Dictionary dictionary);

    /**
     * 获取所有词库中单词数量
     *
     * @return int
     */
    int getDictionaryTotal();

    /**
     * 根据单词模糊查询（带分页）
     *
     * @param wordLike 输入的模糊值
     * @param start    开始页
     * @param count    总页数
     * @return List<Dictionary>
     */
    List<Dictionary> getListLike(@Param("wordLike") String wordLike, @Param("start") int start, @Param("count") int count);

    /**
     * 根据单词模糊查询的记录数
     *
     * @param likeTotalDic 模糊字段
     * @return int
     */
    int getLikeTotal(@Param("likeTotalDic") String likeTotalDic);

    /**
     * 根据单词查翻译（精准查询）
     *
     * @param dictionary 传入的单词信息
     * @return Dictionary
     */
    Dictionary getDictionaryByWord(Dictionary dictionary);

    /**
     * 根据单词或者翻译查询翻译/单词（模糊查询）
     *
     * @param dictionary 传入的单词信息
     * @return Dictionary
     */
    Dictionary getDictionaryByWordTranLike(Dictionary dictionary);
}
